#pragma once

/*
 * Copyright (c) 2018 Confetti Interactive Inc.
 * 
 * This file is part of The-Forge
 * (see https://github.com/ConfettiFX/The-Forge).
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
*/

/************************************************************************/
/************************************************************************/
/*
struct VsIn
{
	float2 position: Position;
	float2 texCoord: TEXCOORD0;
};

struct PsIn
{
	float4 position: SV_Position;
	float2 texCoord: TEXCOORD0;
};

cbuffer uRootConstants : register(b0)
{
	float4 color;
	float2 scaleBias;
};

PsIn main(VsIn In)
{
	PsIn Out;
	Out.position = float4 (In.position, 0.0f, 1.0f);
	Out.position.xy = Out.position.xy * scaleBias.xy + float2(-1.0f, 1.0f);
	Out.texCoord = In.texCoord;
	return Out;
};
*/
static const uint8_t d3d12_builtin_text2D_vert[] =
{
	68,  88,  66,  67, 212, 122,
	232, 181, 219, 246, 210,  73,
	66,  96, 177,  11, 168, 233,
	139,   2,   1,   0,   0,   0,
	176,   3,   0,   0,   5,   0,
	0,   0,  52,   0,   0,   0,
	164,   1,   0,   0, 248,   1,
	0,   0,  80,   2,   0,   0,
	20,   3,   0,   0,  82,  68,
	69,  70, 104,   1,   0,   0,
	1,   0,   0,   0, 108,   0,
	0,   0,   1,   0,   0,   0,
	60,   0,   0,   0,   0,   5,
	254, 255,   0, 129,  32,   0,
	64,   1,   0,   0,  82,  68,
	49,  49,  60,   0,   0,   0,
	24,   0,   0,   0,  32,   0,
	0,   0,  40,   0,   0,   0,
	36,   0,   0,   0,  12,   0,
	0,   0,   0,   0,   0,   0,
	92,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	1,   0,   0,   0,   1,   0,
	0,   0, 117,  82, 111, 111,
	116,  67, 111, 110, 115, 116,
	97, 110, 116, 115,   0, 171,
	92,   0,   0,   0,   2,   0,
	0,   0, 132,   0,   0,   0,
	32,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	212,   0,   0,   0,   0,   0,
	0,   0,  16,   0,   0,   0,
	0,   0,   0,   0, 228,   0,
	0,   0,   0,   0,   0,   0,
	255, 255, 255, 255,   0,   0,
	0,   0, 255, 255, 255, 255,
	0,   0,   0,   0,   8,   1,
	0,   0,  16,   0,   0,   0,
	8,   0,   0,   0,   2,   0,
	0,   0,  28,   1,   0,   0,
	0,   0,   0,   0, 255, 255,
	255, 255,   0,   0,   0,   0,
	255, 255, 255, 255,   0,   0,
	0,   0,  99, 111, 108, 111,
	114,   0, 102, 108, 111,  97,
	116,  52,   0, 171, 171, 171,
	1,   0,   3,   0,   1,   0,
	4,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0, 218,   0,   0,   0,
	115,  99,  97, 108, 101,  66,
	105,  97, 115,   0, 102, 108,
	111,  97, 116,  50,   0, 171,
	171, 171,   1,   0,   3,   0,
	1,   0,   2,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,  18,   1,
	0,   0,  77, 105,  99, 114,
	111, 115, 111, 102, 116,  32,
	40,  82,  41,  32,  72,  76,
	83,  76,  32,  83, 104,  97,
	100, 101, 114,  32,  67, 111,
	109, 112, 105, 108, 101, 114,
	32,  49,  48,  46,  49,   0,
	73,  83,  71,  78,  76,   0,
	0,   0,   2,   0,   0,   0,
	8,   0,   0,   0,  56,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   3,   0,
	0,   0,   0,   0,   0,   0,
	3,   3,   0,   0,  65,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   3,   0,
	0,   0,   1,   0,   0,   0,
	3,   3,   0,   0,  80, 111,
	115, 105, 116, 105, 111, 110,
	0,  84,  69,  88,  67,  79,
	79,  82,  68,   0, 171, 171,
	79,  83,  71,  78,  80,   0,
	0,   0,   2,   0,   0,   0,
	8,   0,   0,   0,  56,   0,
	0,   0,   0,   0,   0,   0,
	1,   0,   0,   0,   3,   0,
	0,   0,   0,   0,   0,   0,
	15,   0,   0,   0,  68,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   3,   0,
	0,   0,   1,   0,   0,   0,
	3,  12,   0,   0,  83,  86,
	95,  80, 111, 115, 105, 116,
	105, 111, 110,   0,  84,  69,
	88,  67,  79,  79,  82,  68,
	0, 171, 171, 171,  83,  72,
	69,  88, 188,   0,   0,   0,
	80,   0,   1,   0,  47,   0,
	0,   0, 106,   8,   0,   1,
	89,   0,   0,   4,  70, 142,
	32,   0,   0,   0,   0,   0,
	2,   0,   0,   0,  95,   0,
	0,   3,  50,  16,  16,   0,
	0,   0,   0,   0,  95,   0,
	0,   3,  50,  16,  16,   0,
	1,   0,   0,   0, 103,   0,
	0,   4, 242,  32,  16,   0,
	0,   0,   0,   0,   1,   0,
	0,   0, 101,   0,   0,   3,
	50,  32,  16,   0,   1,   0,
	0,   0,  50,   0,   0,  13,
	50,  32,  16,   0,   0,   0,
	0,   0,  70,  16,  16,   0,
	0,   0,   0,   0,  70, 128,
	32,   0,   0,   0,   0,   0,
	1,   0,   0,   0,   2,  64,
	0,   0,   0,   0, 128, 191,
	0,   0, 128,  63,   0,   0,
	0,   0,   0,   0,   0,   0,
	54,   0,   0,   8, 194,  32,
	16,   0,   0,   0,   0,   0,
	2,  64,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	128,  63,  54,   0,   0,   5,
	50,  32,  16,   0,   1,   0,
	0,   0,  70,  16,  16,   0,
	1,   0,   0,   0,  62,   0,
	0,   1,  83,  84,  65,  84,
	148,   0,   0,   0,   4,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   4,   0,
	0,   0,   1,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   1,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   2,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0
};
/************************************************************************/
/************************************************************************/
/*
struct PsIn
{
	float4 position: SV_Position;
	float2 texCoord: TEXCOORD0;
};

cbuffer uRootConstants : register(b0)
{
	float4 color;
	float2 scaleBias;
};

Texture2D uTex0 : register(t1);
SamplerState uSampler0 : register(s2);

float4 main(PsIn In) : SV_Target
{
	return float4(1.0, 1.0, 1.0, uTex0.Sample(uSampler0, In.texCoord).r) * color;
}
*/
const uint8_t d3d12_builtin_text_frag[] =
{
	68,  88,  66,  67,  84, 171,
	19,  47, 114, 226,  76, 196,
	108, 184, 144,  84, 144,  16,
	161,  57,   1,   0,   0,   0,
	224,   3,   0,   0,   5,   0,
	0,   0,  52,   0,   0,   0,
	244,   1,   0,   0,  76,   2,
	0,   0, 128,   2,   0,   0,
	68,   3,   0,   0,  82,  68,
	69,  70, 184,   1,   0,   0,
	1,   0,   0,   0, 188,   0,
	0,   0,   3,   0,   0,   0,
	60,   0,   0,   0,   0,   5,
	255, 255,   0, 129,  32,   0,
	144,   1,   0,   0,  82,  68,
	49,  49,  60,   0,   0,   0,
	24,   0,   0,   0,  32,   0,
	0,   0,  40,   0,   0,   0,
	36,   0,   0,   0,  12,   0,
	0,   0,   0,   0,   0,   0,
	156,   0,   0,   0,   3,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   2,   0,   0,   0,
	1,   0,   0,   0,   1,   0,
	0,   0, 166,   0,   0,   0,
	2,   0,   0,   0,   5,   0,
	0,   0,   4,   0,   0,   0,
	255, 255, 255, 255,   1,   0,
	0,   0,   1,   0,   0,   0,
	13,   0,   0,   0, 172,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   1,   0,
	0,   0,   1,   0,   0,   0,
	117,  83,  97, 109, 112, 108,
	101, 114,  48,   0, 117,  84,
	101, 120,  48,   0, 117,  82,
	111, 111, 116,  67, 111, 110,
	115, 116,  97, 110, 116, 115,
	0, 171, 172,   0,   0,   0,
	2,   0,   0,   0, 212,   0,
	0,   0,  32,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,  36,   1,   0,   0,
	0,   0,   0,   0,  16,   0,
	0,   0,   2,   0,   0,   0,
	52,   1,   0,   0,   0,   0,
	0,   0, 255, 255, 255, 255,
	0,   0,   0,   0, 255, 255,
	255, 255,   0,   0,   0,   0,
	88,   1,   0,   0,  16,   0,
	0,   0,   8,   0,   0,   0,
	0,   0,   0,   0, 108,   1,
	0,   0,   0,   0,   0,   0,
	255, 255, 255, 255,   0,   0,
	0,   0, 255, 255, 255, 255,
	0,   0,   0,   0,  99, 111,
	108, 111, 114,   0, 102, 108,
	111,  97, 116,  52,   0, 171,
	171, 171,   1,   0,   3,   0,
	1,   0,   4,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,  42,   1,
	0,   0, 115,  99,  97, 108,
	101,  66, 105,  97, 115,   0,
	102, 108, 111,  97, 116,  50,
	0, 171, 171, 171,   1,   0,
	3,   0,   1,   0,   2,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	98,   1,   0,   0,  77, 105,
	99, 114, 111, 115, 111, 102,
	116,  32,  40,  82,  41,  32,
	72,  76,  83,  76,  32,  83,
	104,  97, 100, 101, 114,  32,
	67, 111, 109, 112, 105, 108,
	101, 114,  32,  49,  48,  46,
	49,   0,  73,  83,  71,  78,
	80,   0,   0,   0,   2,   0,
	0,   0,   8,   0,   0,   0,
	56,   0,   0,   0,   0,   0,
	0,   0,   1,   0,   0,   0,
	3,   0,   0,   0,   0,   0,
	0,   0,  15,   0,   0,   0,
	68,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	3,   0,   0,   0,   1,   0,
	0,   0,   3,   3,   0,   0,
	83,  86,  95,  80, 111, 115,
	105, 116, 105, 111, 110,   0,
	84,  69,  88,  67,  79,  79,
	82,  68,   0, 171, 171, 171,
	79,  83,  71,  78,  44,   0,
	0,   0,   1,   0,   0,   0,
	8,   0,   0,   0,  32,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   3,   0,
	0,   0,   0,   0,   0,   0,
	15,   0,   0,   0,  83,  86,
	95,  84,  97, 114, 103, 101,
	116,   0, 171, 171,  83,  72,
	69,  88, 188,   0,   0,   0,
	80,   0,   0,   0,  47,   0,
	0,   0, 106,   8,   0,   1,
	89,   0,   0,   4,  70, 142,
	32,   0,   0,   0,   0,   0,
	1,   0,   0,   0,  90,   0,
	0,   3,   0,  96,  16,   0,
	2,   0,   0,   0,  88,  24,
	0,   4,   0, 112,  16,   0,
	1,   0,   0,   0,  85,  85,
	0,   0,  98,  16,   0,   3,
	50,  16,  16,   0,   1,   0,
	0,   0, 101,   0,   0,   3,
	242,  32,  16,   0,   0,   0,
	0,   0, 104,   0,   0,   2,
	1,   0,   0,   0,  69,   0,
	0, 139, 194,   0,   0, 128,
	67,  85,  21,   0,  34,   0,
	16,   0,   0,   0,   0,   0,
	70,  16,  16,   0,   1,   0,
	0,   0,  22, 126,  16,   0,
	1,   0,   0,   0,   0,  96,
	16,   0,   2,   0,   0,   0,
	54,   0,   0,   5,  18,   0,
	16,   0,   0,   0,   0,   0,
	1,  64,   0,   0,   0,   0,
	128,  63,  56,   0,   0,   8,
	242,  32,  16,   0,   0,   0,
	0,   0,   6,   4,  16,   0,
	0,   0,   0,   0,  70, 142,
	32,   0,   0,   0,   0,   0,
	0,   0,   0,   0,  62,   0,
	0,   1,  83,  84,  65,  84,
	148,   0,   0,   0,   4,   0,
	0,   0,   1,   0,   0,   0,
	0,   0,   0,   0,   2,   0,
	0,   0,   1,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   1,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	1,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   1,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0
};
/************************************************************************/
/************************************************************************/
/*
struct VsIn
{
	float2 position: Position;
	float2 texCoord: TEXCOORD0;
};

struct PsIn
{
	float4 position: SV_Position;
	float2 texCoord: TEXCOORD0;
};

cbuffer uRootConstants : register(b0)
{
	float4 color;
	float2 scaleBias;
};

cbuffer uniformBlock : register(b1)
{
	float4x4 mvp;
};

PsIn main(VsIn In)
{
	PsIn Out;
	Out.position = mul(mvp , float4(In.position * scaleBias.xy, 1.0f, 1.0f));
	Out.texCoord = In.texCoord;
	return Out;
}
*/
const uint8_t d3d12_builtin_text3D_vert[] =
{
	68,  88,  66,  67,  48, 111,
	159, 210, 191, 221, 106, 191,
	169,  24,   4, 252, 115,  71,
	115,  68,   1,   0,   0,   0,
	188,   4,   0,   0,   5,   0,
	0,   0,  52,   0,   0,   0,
	68,   2,   0,   0, 152,   2,
	0,   0, 240,   2,   0,   0,
	32,   4,   0,   0,  82,  68,
	69,  70,   8,   2,   0,   0,
	2,   0,   0,   0, 152,   0,
	0,   0,   2,   0,   0,   0,
	60,   0,   0,   0,   0,   5,
	254, 255,   0, 129,  32,   0,
	224,   1,   0,   0,  82,  68,
	49,  49,  60,   0,   0,   0,
	24,   0,   0,   0,  32,   0,
	0,   0,  40,   0,   0,   0,
	36,   0,   0,   0,  12,   0,
	0,   0,   0,   0,   0,   0,
	124,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	1,   0,   0,   0,   1,   0,
	0,   0, 139,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   1,   0,
	0,   0,   1,   0,   0,   0,
	1,   0,   0,   0, 117,  82,
	111, 111, 116,  67, 111, 110,
	115, 116,  97, 110, 116, 115,
	0, 117, 110, 105, 102, 111,
	114, 109,  66, 108, 111,  99,
	107,   0, 124,   0,   0,   0,
	2,   0,   0,   0, 200,   0,
	0,   0,  32,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0, 139,   0,   0,   0,
	1,   0,   0,   0, 132,   1,
	0,   0,  64,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,  24,   1,   0,   0,
	0,   0,   0,   0,  16,   0,
	0,   0,   0,   0,   0,   0,
	40,   1,   0,   0,   0,   0,
	0,   0, 255, 255, 255, 255,
	0,   0,   0,   0, 255, 255,
	255, 255,   0,   0,   0,   0,
	76,   1,   0,   0,  16,   0,
	0,   0,   8,   0,   0,   0,
	2,   0,   0,   0,  96,   1,
	0,   0,   0,   0,   0,   0,
	255, 255, 255, 255,   0,   0,
	0,   0, 255, 255, 255, 255,
	0,   0,   0,   0,  99, 111,
	108, 111, 114,   0, 102, 108,
	111,  97, 116,  52,   0, 171,
	171, 171,   1,   0,   3,   0,
	1,   0,   4,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,  30,   1,
	0,   0, 115,  99,  97, 108,
	101,  66, 105,  97, 115,   0,
	102, 108, 111,  97, 116,  50,
	0, 171, 171, 171,   1,   0,
	3,   0,   1,   0,   2,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	86,   1,   0,   0, 172,   1,
	0,   0,   0,   0,   0,   0,
	64,   0,   0,   0,   2,   0,
	0,   0, 188,   1,   0,   0,
	0,   0,   0,   0, 255, 255,
	255, 255,   0,   0,   0,   0,
	255, 255, 255, 255,   0,   0,
	0,   0, 109, 118, 112,   0,
	102, 108, 111,  97, 116,  52,
	120,  52,   0, 171, 171, 171,
	3,   0,   3,   0,   4,   0,
	4,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0, 176,   1,   0,   0,
	77, 105,  99, 114, 111, 115,
	111, 102, 116,  32,  40,  82,
	41,  32,  72,  76,  83,  76,
	32,  83, 104,  97, 100, 101,
	114,  32,  67, 111, 109, 112,
	105, 108, 101, 114,  32,  49,
	48,  46,  49,   0,  73,  83,
	71,  78,  76,   0,   0,   0,
	2,   0,   0,   0,   8,   0,
	0,   0,  56,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   3,   0,   0,   0,
	0,   0,   0,   0,   3,   3,
	0,   0,  65,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   3,   0,   0,   0,
	1,   0,   0,   0,   3,   3,
	0,   0,  80, 111, 115, 105,
	116, 105, 111, 110,   0,  84,
	69,  88,  67,  79,  79,  82,
	68,   0, 171, 171,  79,  83,
	71,  78,  80,   0,   0,   0,
	2,   0,   0,   0,   8,   0,
	0,   0,  56,   0,   0,   0,
	0,   0,   0,   0,   1,   0,
	0,   0,   3,   0,   0,   0,
	0,   0,   0,   0,  15,   0,
	0,   0,  68,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   3,   0,   0,   0,
	1,   0,   0,   0,   3,  12,
	0,   0,  83,  86,  95,  80,
	111, 115, 105, 116, 105, 111,
	110,   0,  84,  69,  88,  67,
	79,  79,  82,  68,   0, 171,
	171, 171,  83,  72,  69,  88,
	40,   1,   0,   0,  80,   0,
	1,   0,  74,   0,   0,   0,
	106,   8,   0,   1,  89,   0,
	0,   4,  70, 142,  32,   0,
	0,   0,   0,   0,   2,   0,
	0,   0,  89,   0,   0,   4,
	70, 142,  32,   0,   1,   0,
	0,   0,   4,   0,   0,   0,
	95,   0,   0,   3,  50,  16,
	16,   0,   0,   0,   0,   0,
	95,   0,   0,   3,  50,  16,
	16,   0,   1,   0,   0,   0,
	103,   0,   0,   4, 242,  32,
	16,   0,   0,   0,   0,   0,
	1,   0,   0,   0, 101,   0,
	0,   3,  50,  32,  16,   0,
	1,   0,   0,   0, 104,   0,
	0,   2,   2,   0,   0,   0,
	56,   0,   0,   8,  50,   0,
	16,   0,   0,   0,   0,   0,
	70,  16,  16,   0,   0,   0,
	0,   0,  70, 128,  32,   0,
	0,   0,   0,   0,   1,   0,
	0,   0,  56,   0,   0,   8,
	242,   0,  16,   0,   1,   0,
	0,   0,  86,   5,  16,   0,
	0,   0,   0,   0,  70, 142,
	32,   0,   1,   0,   0,   0,
	1,   0,   0,   0,  50,   0,
	0,  10, 242,   0,  16,   0,
	0,   0,   0,   0,  70, 142,
	32,   0,   1,   0,   0,   0,
	0,   0,   0,   0,   6,   0,
	16,   0,   0,   0,   0,   0,
	70,  14,  16,   0,   1,   0,
	0,   0,   0,   0,   0,   8,
	242,   0,  16,   0,   0,   0,
	0,   0,  70,  14,  16,   0,
	0,   0,   0,   0,  70, 142,
	32,   0,   1,   0,   0,   0,
	2,   0,   0,   0,   0,   0,
	0,   8, 242,  32,  16,   0,
	0,   0,   0,   0,  70,  14,
	16,   0,   0,   0,   0,   0,
	70, 142,  32,   0,   1,   0,
	0,   0,   3,   0,   0,   0,
	54,   0,   0,   5,  50,  32,
	16,   0,   1,   0,   0,   0,
	70,  16,  16,   0,   1,   0,
	0,   0,  62,   0,   0,   1,
	83,  84,  65,  84, 148,   0,
	0,   0,   7,   0,   0,   0,
	2,   0,   0,   0,   0,   0,
	0,   0,   4,   0,   0,   0,
	5,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	1,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	1,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0,
	0,   0,   0,   0,   0,   0
};
/************************************************************************/
/************************************************************************/
/*
#version 450

layout(push_constant, std430) uniform type_PushConstant_RootConstants
{
	vec4 color;
	vec2 scaleBias;
} uRootConstants;

layout(location = 0) in vec2 in_var_Position;
layout(location = 1) in vec2 in_var_TEXCOORD0;
layout(location = 0) out vec2 out_var_TEXCOORD0;

void main()
{
	vec4 _35 = vec4(in_var_Position, 0.0, 1.0);
	vec2 _40 = (_35.xy * uRootConstants.scaleBias) + vec2(-1.0, 1.0);
	gl_Position = vec4(_40.x, _40.y, _35.z, _35.w);
	out_var_TEXCOORD0 = in_var_TEXCOORD0;
}
*/
// 7.7.2767
#pragma once
static const uint32_t vk_builtin_text2D_vert[] = {
	0x07230203,0x00010000,0x00080007,0x0000003d,0x00000000,0x00020011,0x00000001,0x0006000b,
	0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
	0x0009000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000000c,0x00000028,0x0000003a,
	0x0000003b,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d,0x00000000,
	0x00030005,0x00000009,0x0035335f,0x00060005,0x0000000c,0x765f6e69,0x505f7261,0x7469736f,
	0x006e6f69,0x00030005,0x00000014,0x0030345f,0x000a0005,0x00000017,0x65707974,0x7375505f,
	0x6e6f4368,0x6e617473,0x6f525f74,0x6f43746f,0x6174736e,0x0073746e,0x00050006,0x00000017,
	0x00000000,0x6f6c6f63,0x00000072,0x00060006,0x00000017,0x00000001,0x6c616373,0x61694265,
	0x00000073,0x00060005,0x00000019,0x6f6f5275,0x6e6f4374,0x6e617473,0x00007374,0x00060005,
	0x00000026,0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x00000026,0x00000000,
	0x505f6c67,0x7469736f,0x006e6f69,0x00070006,0x00000026,0x00000001,0x505f6c67,0x746e696f,
	0x657a6953,0x00000000,0x00070006,0x00000026,0x00000002,0x435f6c67,0x4470696c,0x61747369,
	0x0065636e,0x00070006,0x00000026,0x00000003,0x435f6c67,0x446c6c75,0x61747369,0x0065636e,
	0x00030005,0x00000028,0x00000000,0x00070005,0x0000003a,0x5f74756f,0x5f726176,0x43584554,
	0x44524f4f,0x00000030,0x00070005,0x0000003b,0x765f6e69,0x545f7261,0x4f435845,0x3044524f,
	0x00000000,0x00040047,0x0000000c,0x0000001e,0x00000000,0x00050048,0x00000017,0x00000000,
	0x00000023,0x00000000,0x00050048,0x00000017,0x00000001,0x00000023,0x00000010,0x00030047,
	0x00000017,0x00000002,0x00050048,0x00000026,0x00000000,0x0000000b,0x00000000,0x00050048,
	0x00000026,0x00000001,0x0000000b,0x00000001,0x00050048,0x00000026,0x00000002,0x0000000b,
	0x00000003,0x00050048,0x00000026,0x00000003,0x0000000b,0x00000004,0x00030047,0x00000026,
	0x00000002,0x00040047,0x0000003a,0x0000001e,0x00000000,0x00040047,0x0000003b,0x0000001e,
	0x00000001,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,
	0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008,0x00000007,
	0x00000007,0x00040017,0x0000000a,0x00000006,0x00000002,0x00040020,0x0000000b,0x00000001,
	0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000001,0x0004002b,0x00000006,0x0000000e,
	0x00000000,0x0004002b,0x00000006,0x0000000f,0x3f800000,0x00040020,0x00000013,0x00000007,
	0x0000000a,0x0004001e,0x00000017,0x00000007,0x0000000a,0x00040020,0x00000018,0x00000009,
	0x00000017,0x0004003b,0x00000018,0x00000019,0x00000009,0x00040015,0x0000001a,0x00000020,
	0x00000001,0x0004002b,0x0000001a,0x0000001b,0x00000001,0x00040020,0x0000001c,0x00000009,
	0x0000000a,0x0004002b,0x00000006,0x00000020,0xbf800000,0x0005002c,0x0000000a,0x00000021,
	0x00000020,0x0000000f,0x00040015,0x00000023,0x00000020,0x00000000,0x0004002b,0x00000023,
	0x00000024,0x00000001,0x0004001c,0x00000025,0x00000006,0x00000024,0x0006001e,0x00000026,
	0x00000007,0x00000006,0x00000025,0x00000025,0x00040020,0x00000027,0x00000003,0x00000026,
	0x0004003b,0x00000027,0x00000028,0x00000003,0x0004002b,0x0000001a,0x00000029,0x00000000,
	0x0004002b,0x00000023,0x0000002a,0x00000000,0x00040020,0x0000002b,0x00000007,0x00000006,
	0x0004002b,0x00000023,0x00000030,0x00000002,0x0004002b,0x00000023,0x00000033,0x00000003,
	0x00040020,0x00000037,0x00000003,0x00000007,0x00040020,0x00000039,0x00000003,0x0000000a,
	0x0004003b,0x00000039,0x0000003a,0x00000003,0x0004003b,0x0000000b,0x0000003b,0x00000001,
	0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
	0x00000008,0x00000009,0x00000007,0x0004003b,0x00000013,0x00000014,0x00000007,0x0004003d,
	0x0000000a,0x0000000d,0x0000000c,0x00050051,0x00000006,0x00000010,0x0000000d,0x00000000,
	0x00050051,0x00000006,0x00000011,0x0000000d,0x00000001,0x00070050,0x00000007,0x00000012,
	0x00000010,0x00000011,0x0000000e,0x0000000f,0x0003003e,0x00000009,0x00000012,0x0004003d,
	0x00000007,0x00000015,0x00000009,0x0007004f,0x0000000a,0x00000016,0x00000015,0x00000015,
	0x00000000,0x00000001,0x00050041,0x0000001c,0x0000001d,0x00000019,0x0000001b,0x0004003d,
	0x0000000a,0x0000001e,0x0000001d,0x00050085,0x0000000a,0x0000001f,0x00000016,0x0000001e,
	0x00050081,0x0000000a,0x00000022,0x0000001f,0x00000021,0x0003003e,0x00000014,0x00000022,
	0x00050041,0x0000002b,0x0000002c,0x00000014,0x0000002a,0x0004003d,0x00000006,0x0000002d,
	0x0000002c,0x00050041,0x0000002b,0x0000002e,0x00000014,0x00000024,0x0004003d,0x00000006,
	0x0000002f,0x0000002e,0x00050041,0x0000002b,0x00000031,0x00000009,0x00000030,0x0004003d,
	0x00000006,0x00000032,0x00000031,0x00050041,0x0000002b,0x00000034,0x00000009,0x00000033,
	0x0004003d,0x00000006,0x00000035,0x00000034,0x00070050,0x00000007,0x00000036,0x0000002d,
	0x0000002f,0x00000032,0x00000035,0x00050041,0x00000037,0x00000038,0x00000028,0x00000029,
	0x0003003e,0x00000038,0x00000036,0x0004003d,0x0000000a,0x0000003c,0x0000003b,0x0003003e,
	0x0000003a,0x0000003c,0x000100fd,0x00010038
};
/************************************************************************/
/************************************************************************/
/*
#version 450

layout(push_constant, std430) uniform type_PushConstant_RootConstants
{
	vec4 color;
	vec2 scaleBias;
} uRootConstants;

layout(set = 0, binding = 2) uniform texture2D uTex0;
layout(set = 0, binding = 3) uniform sampler uSampler0;

layout(location = 0) in vec2 in_var_TEXCOORD0;
layout(location = 0) out vec4 out_var_SV_Target;

void main()
{
	out_var_SV_Target = vec4(1.0, 1.0, 1.0, texture(sampler2D(uTex0, uSampler0), in_var_TEXCOORD0).x) * uRootConstants.color;
}
*/
// 7.7.2767
#pragma once
const uint32_t vk_builtin_text_frag[] = {
	0x07230203,0x00010000,0x00080007,0x00000027,0x00000000,0x00020011,0x00000001,0x0006000b,
	0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
	0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000009,0x00000017,0x00030010,
	0x00000004,0x00000007,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d,
	0x00000000,0x00070005,0x00000009,0x5f74756f,0x5f726176,0x545f5653,0x65677261,0x00000074,
	0x00040005,0x0000000d,0x78655475,0x00000030,0x00050005,0x00000011,0x6d615375,0x72656c70,
	0x00000030,0x00070005,0x00000017,0x765f6e69,0x545f7261,0x4f435845,0x3044524f,0x00000000,
	0x000a0005,0x0000001e,0x65707974,0x7375505f,0x6e6f4368,0x6e617473,0x6f525f74,0x6f43746f,
	0x6174736e,0x0073746e,0x00050006,0x0000001e,0x00000000,0x6f6c6f63,0x00000072,0x00060006,
	0x0000001e,0x00000001,0x6c616373,0x61694265,0x00000073,0x00060005,0x00000020,0x6f6f5275,
	0x6e6f4374,0x6e617473,0x00007374,0x00040047,0x00000009,0x0000001e,0x00000000,0x00040047,
	0x0000000d,0x00000022,0x00000000,0x00040047,0x0000000d,0x00000021,0x00000002,0x00040047,
	0x00000011,0x00000022,0x00000000,0x00040047,0x00000011,0x00000021,0x00000003,0x00040047,
	0x00000017,0x0000001e,0x00000000,0x00050048,0x0000001e,0x00000000,0x00000023,0x00000000,
	0x00050048,0x0000001e,0x00000001,0x00000023,0x00000010,0x00030047,0x0000001e,0x00000002,
	0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,
	0x00040017,0x00000007,0x00000006,0x00000004,0x00040020,0x00000008,0x00000003,0x00000007,
	0x0004003b,0x00000008,0x00000009,0x00000003,0x0004002b,0x00000006,0x0000000a,0x3f800000,
	0x00090019,0x0000000b,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,
	0x00000000,0x00040020,0x0000000c,0x00000000,0x0000000b,0x0004003b,0x0000000c,0x0000000d,
	0x00000000,0x0002001a,0x0000000f,0x00040020,0x00000010,0x00000000,0x0000000f,0x0004003b,
	0x00000010,0x00000011,0x00000000,0x0003001b,0x00000013,0x0000000b,0x00040017,0x00000015,
	0x00000006,0x00000002,0x00040020,0x00000016,0x00000001,0x00000015,0x0004003b,0x00000016,
	0x00000017,0x00000001,0x00040015,0x0000001a,0x00000020,0x00000000,0x0004002b,0x0000001a,
	0x0000001b,0x00000000,0x0004001e,0x0000001e,0x00000007,0x00000015,0x00040020,0x0000001f,
	0x00000009,0x0000001e,0x0004003b,0x0000001f,0x00000020,0x00000009,0x00040015,0x00000021,
	0x00000020,0x00000001,0x0004002b,0x00000021,0x00000022,0x00000000,0x00040020,0x00000023,
	0x00000009,0x00000007,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,
	0x00000005,0x0004003d,0x0000000b,0x0000000e,0x0000000d,0x0004003d,0x0000000f,0x00000012,
	0x00000011,0x00050056,0x00000013,0x00000014,0x0000000e,0x00000012,0x0004003d,0x00000015,
	0x00000018,0x00000017,0x00050057,0x00000007,0x00000019,0x00000014,0x00000018,0x00050051,
	0x00000006,0x0000001c,0x00000019,0x00000000,0x00070050,0x00000007,0x0000001d,0x0000000a,
	0x0000000a,0x0000000a,0x0000001c,0x00050041,0x00000023,0x00000024,0x00000020,0x00000022,
	0x0004003d,0x00000007,0x00000025,0x00000024,0x00050085,0x00000007,0x00000026,0x0000001d,
	0x00000025,0x0003003e,0x00000009,0x00000026,0x000100fd,0x00010038
};
/************************************************************************/
/************************************************************************/
/*
#version 450

layout(set = 0, binding = 1, std140) uniform type_uniformBlock
{
	layout(row_major) mat4 mvp;
} uniformBlock;

layout(push_constant, std430) uniform type_PushConstant_RootConstants
{
	vec4 color;
	vec2 scaleBias;
} uRootConstants;

layout(location = 0) in vec2 in_var_Position;
layout(location = 1) in vec2 in_var_TEXCOORD0;
layout(location = 0) out vec2 out_var_TEXCOORD0;

void main()
{
	gl_Position = vec4(in_var_Position * uRootConstants.scaleBias, 1.0, 1.0) * uniformBlock.mvp;
	out_var_TEXCOORD0 = in_var_TEXCOORD0;
}
*/
// 7.7.2767
#pragma once
const uint32_t vk_builtin_text3D_vert[] = {
	0x07230203,0x00010000,0x00080007,0x0000002e,0x00000000,0x00020011,0x00000001,0x0006000b,
	0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
	0x0009000f,0x00000000,0x00000004,0x6e69616d,0x00000000,0x0000000d,0x00000012,0x0000002b,
	0x0000002c,0x00030003,0x00000002,0x000001c2,0x00040005,0x00000004,0x6e69616d,0x00000000,
	0x00060005,0x0000000b,0x505f6c67,0x65567265,0x78657472,0x00000000,0x00060006,0x0000000b,
	0x00000000,0x505f6c67,0x7469736f,0x006e6f69,0x00070006,0x0000000b,0x00000001,0x505f6c67,
	0x746e696f,0x657a6953,0x00000000,0x00070006,0x0000000b,0x00000002,0x435f6c67,0x4470696c,
	0x61747369,0x0065636e,0x00070006,0x0000000b,0x00000003,0x435f6c67,0x446c6c75,0x61747369,
	0x0065636e,0x00030005,0x0000000d,0x00000000,0x00060005,0x00000012,0x765f6e69,0x505f7261,
	0x7469736f,0x006e6f69,0x000a0005,0x00000014,0x65707974,0x7375505f,0x6e6f4368,0x6e617473,
	0x6f525f74,0x6f43746f,0x6174736e,0x0073746e,0x00050006,0x00000014,0x00000000,0x6f6c6f63,
	0x00000072,0x00060006,0x00000014,0x00000001,0x6c616373,0x61694265,0x00000073,0x00060005,
	0x00000016,0x6f6f5275,0x6e6f4374,0x6e617473,0x00007374,0x00070005,0x00000021,0x65707974,
	0x696e755f,0x6d726f66,0x636f6c42,0x0000006b,0x00040006,0x00000021,0x00000000,0x0070766d,
	0x00060005,0x00000023,0x66696e75,0x426d726f,0x6b636f6c,0x00000000,0x00070005,0x0000002b,
	0x5f74756f,0x5f726176,0x43584554,0x44524f4f,0x00000030,0x00070005,0x0000002c,0x765f6e69,
	0x545f7261,0x4f435845,0x3044524f,0x00000000,0x00050048,0x0000000b,0x00000000,0x0000000b,
	0x00000000,0x00050048,0x0000000b,0x00000001,0x0000000b,0x00000001,0x00050048,0x0000000b,
	0x00000002,0x0000000b,0x00000003,0x00050048,0x0000000b,0x00000003,0x0000000b,0x00000004,
	0x00030047,0x0000000b,0x00000002,0x00040047,0x00000012,0x0000001e,0x00000000,0x00050048,
	0x00000014,0x00000000,0x00000023,0x00000000,0x00050048,0x00000014,0x00000001,0x00000023,
	0x00000010,0x00030047,0x00000014,0x00000002,0x00040048,0x00000021,0x00000000,0x00000004,
	0x00050048,0x00000021,0x00000000,0x00000023,0x00000000,0x00050048,0x00000021,0x00000000,
	0x00000007,0x00000010,0x00030047,0x00000021,0x00000002,0x00040047,0x00000023,0x00000022,
	0x00000000,0x00040047,0x00000023,0x00000021,0x00000001,0x00040047,0x0000002b,0x0000001e,
	0x00000000,0x00040047,0x0000002c,0x0000001e,0x00000001,0x00020013,0x00000002,0x00030021,
	0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,
	0x00000004,0x00040015,0x00000008,0x00000020,0x00000000,0x0004002b,0x00000008,0x00000009,
	0x00000001,0x0004001c,0x0000000a,0x00000006,0x00000009,0x0006001e,0x0000000b,0x00000007,
	0x00000006,0x0000000a,0x0000000a,0x00040020,0x0000000c,0x00000003,0x0000000b,0x0004003b,
	0x0000000c,0x0000000d,0x00000003,0x00040015,0x0000000e,0x00000020,0x00000001,0x0004002b,
	0x0000000e,0x0000000f,0x00000000,0x00040017,0x00000010,0x00000006,0x00000002,0x00040020,
	0x00000011,0x00000001,0x00000010,0x0004003b,0x00000011,0x00000012,0x00000001,0x0004001e,
	0x00000014,0x00000007,0x00000010,0x00040020,0x00000015,0x00000009,0x00000014,0x0004003b,
	0x00000015,0x00000016,0x00000009,0x0004002b,0x0000000e,0x00000017,0x00000001,0x00040020,
	0x00000018,0x00000009,0x00000010,0x0004002b,0x00000006,0x0000001c,0x3f800000,0x00040018,
	0x00000020,0x00000007,0x00000004,0x0003001e,0x00000021,0x00000020,0x00040020,0x00000022,
	0x00000002,0x00000021,0x0004003b,0x00000022,0x00000023,0x00000002,0x00040020,0x00000024,
	0x00000002,0x00000020,0x00040020,0x00000028,0x00000003,0x00000007,0x00040020,0x0000002a,
	0x00000003,0x00000010,0x0004003b,0x0000002a,0x0000002b,0x00000003,0x0004003b,0x00000011,
	0x0000002c,0x00000001,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,
	0x00000005,0x0004003d,0x00000010,0x00000013,0x00000012,0x00050041,0x00000018,0x00000019,
	0x00000016,0x00000017,0x0004003d,0x00000010,0x0000001a,0x00000019,0x00050085,0x00000010,
	0x0000001b,0x00000013,0x0000001a,0x00050051,0x00000006,0x0000001d,0x0000001b,0x00000000,
	0x00050051,0x00000006,0x0000001e,0x0000001b,0x00000001,0x00070050,0x00000007,0x0000001f,
	0x0000001d,0x0000001e,0x0000001c,0x0000001c,0x00050041,0x00000024,0x00000025,0x00000023,
	0x0000000f,0x0004003d,0x00000020,0x00000026,0x00000025,0x00050090,0x00000007,0x00000027,
	0x0000001f,0x00000026,0x00050041,0x00000028,0x00000029,0x0000000d,0x0000000f,0x0003003e,
	0x00000029,0x00000027,0x0004003d,0x00000010,0x0000002d,0x0000002c,0x0003003e,0x0000002b,
	0x0000002d,0x000100fd,0x00010038
};
/************************************************************************/
/************************************************************************/
static const char* mtl_builtin_text = R"(
#include <metal_stdlib>
using namespace metal;

struct VsIn
{
 float2 position [[attribute(0)]];
 float2 texCoord [[attribute(1)]];
};

struct PsIn
{
 float4 position [[position]];
 float2 texCoord;
};

struct UniformBlock
{
	float4 color;
	float2 scaleBias;
};

struct UniformBlock1
{
	float4x4 mvp;
};

vertex PsIn VSMain(VsIn In [[stage_in]], constant UniformBlock& uRootConstants [[buffer(1)]])
{
	PsIn Out;
	Out.position = float4 (In.position, 0.0f, 1.0f);
	Out.position.xy = Out.position.xy * uRootConstants.scaleBias.xy + float2(-1.0f, 1.0f);
	Out.texCoord = In.texCoord;
	return Out;
}

vertex PsIn VSMain3D(VsIn In [[stage_in]], constant UniformBlock& uRootConstants [[buffer(1)]],
					constant UniformBlock1& uniformBlock [[buffer(2)]])
{
	PsIn Out;
	Out.position = uniformBlock.mvp * float4 (In.position.xy * uRootConstants.scaleBias.xy, 1.0f, 1.0f);
	Out.texCoord = In.texCoord;
	return Out;
}

fragment float4 PSMain(PsIn In [[stage_in]],
                       texture2d<float,access::sample> uTex0 [[texture(0)]],
                       sampler uSampler0 [[sampler(0)]],
                       constant UniformBlock& uRootConstants [[buffer(1)]])
{
	return float4(1.0, 1.0, 1.0, uTex0.sample(uSampler0, In.texCoord).r) * uRootConstants.color;
}
)";
